package Bigdecima;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;

public class test {
    public static void main(String[] args) {
        //通过传递double类型表示小数来创建对象
        //这种方式有可能是不精确的，不建议在使用
        BigDecimal bd1=new BigDecimal(0.01);//0.01000000000000000020816681711721685132943093776702880859375
        BigDecimal bd2=new BigDecimal(0.09);//0.0899999999999999966693309261245303787291049957275390625

        //通过传递字符串表示小数来创建对象
        //数据较为精确
        BigDecimal bd3=new BigDecimal("0.01");
        BigDecimal bd4=new BigDecimal("0.09");
        BigDecimal bd5 = bd3.add(bd4);
        System.out.println(bd3);
        System.out.println(bd4);
        System.out.println(bd5);

        //通过静态方法获取对象,静态方法对0~10的整数有优化，不会重复创建对象
        BigDecimal bd6 = BigDecimal.valueOf(10);
        BigDecimal bd7 = BigDecimal.valueOf(10);
        System.out.println(bd6==bd7);


        BigDecimal b1=BigDecimal.valueOf(10.0);
        BigDecimal b2=BigDecimal.valueOf(3.0);
        //相加
        BigDecimal b3 = b1.add(b2);
        System.out.println("相加:"+b3);
        //减法
        BigDecimal b4 = b1.subtract(b2);
        System.out.println("减法:"+b4);
        //乘法
        BigDecimal b5 = b1.multiply(b2);
        System.out.println("乘法:"+b5);
        //除法
        BigDecimal b6=b1.divide(b2,2, RoundingMode.HALF_UP);
        System.out.println(b6);

    }
}
